TOP

SQL結合

SQL JOIN

JOIN 式は、テーブル間の関連する列に基づいて 2 つ以上のテーブルの行を結合するために使用されます。


テーブル "Orders" ("Orders") のサンプルを見てみましょう。

ProductIDOrderIDCustomerIDEmployeeIDOrderDateShipperID
1102489051996-07-043
2102498161996-07-051
3102503441996-07-082

次に、テーブル "Customers" ("Customers") のサンプルを見てください。

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.5021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.5023Mexico

テーブル「Orders」の列「CustomerID」はテーブル「Customers」の「CustomerID」を参照していることに注意してください。 上記の 2 つのテーブル間の関係は、「CustomerID」列です。

次に、両方のテーブルで一致する値を持つレコードを選択する次の SQL ステートメント (INNER JOIN を含む) を作成できます。

Run SQLSELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID

これにより、次のようなものが生成されます。

OrderIDCustomerNameOrderDate
10308Ana Trujillo Emparedados y helados1996-09-18
10365Antonio Moreno Taquería1996-11-27
10355Around the Horn1996-11-15
10383Around the Horn1996-12-16
10289B's Beverages1996-08-26

さまざまな種類の SQL JOIN

SQL のさまざまなタイプの JOIN を次に示します。

  • (INNER) JOIN: 両方のテーブルで一致する値を持つレコードを返します
  • LEFT (OUTER) JOIN: 左側のテーブルからすべてのレコードと、右側のテーブルから対応するレコードを返します。
  • RIGHT (OUTER) JOIN: 右テーブルのすべてのレコードと、左テーブルの一致するレコードを返します。
  • FULL (OUTER) JOIN: 左または右のテーブルに一致するものがあれば、すべてのレコードを返します。


  • SQL INNER JOIN  SQL LEFT JOIN  SQL RIGHT JOIN  SQL FULL OUTER JOIN